let express = require('express');
const expressJWT = require('express-jwt');
let cors = require('cors');


let app = express();
app.listen(4000, () => console.log('4000 BE后台服务启动'));
app.use(cors());
// ***********************************************************中间件
// 处理post参数
app.use(express.urlencoded({
  extended: false
}));


// 进行token解密： 注意这个包是基于express；
// 加上要求：/my 开头的url请求  请求头里面都得有token
//          了解：内部有封装：如果token解密错误，内容返回错误显示到前端；
//          后台不能用默认错误返回，得设置专门返回对象！
//          得到id；在req.user对象；{id:解密出id值} 
app.use(expressJWT({
  secret: 'sakura',
  algorithms: ['HS256']
}).unless({
  // 除了登录和注册的接口之外，其他接口都需要认证
  path: ['/user/login', '/user/reg']
}));







// 登录
let loginRouter = require("./routers/login.js")
app.use("/user", loginRouter);


// 个人中心：
let indexRouter = require("./routers/todo.js")
app.use("/todo", indexRouter);
// ************************************************************处理错误中间件
// 
app.use(function (err, req, res, next) {

  if (err.name == "UnauthorizedError") {
    res.send({
      status: 1,
      message: "身份认证失败!!!!！"

    });
  }
});